﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using Persistence = Entersoft.Data.DotNetDAL.SQL.Persistence;

namespace BLL
{
    public class Ajuste : Common
    {
        public static DataTable ObtenerAjustes(string Periodo, ref string Mensaje)
        {
            var retorno = new DataTable();

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence { StoredProcedure = "sp_sel_ajuste" };

            using (var objConn = new Persistence(false, ConnDB))
            {
                objRP.AddParametro(Periodo);

                objConn.ExecuteDataTable(ref objRP);

                if (!objRP.TieneErrores)
                    retorno = objRP.DataTable;
                else
                    Mensaje = objRP.Errores;
            }

            objRP.Dispose();

            return retorno;
        }

        // SELECT dbo.fn_GetItemsCuadrados ('20140929')
        /// <summary>
        ///     Ejecuta la siguiente consulta SQL: SELECT dbo.fn_GetItemsCuadrados ('<paramref name="Periodo"/>')
        /// </summary>
        /// <param name="Periodo">Cadena de 8 caracteres que corresponde al Período a consultar</param>
        /// <param name="Mensaje">Cadena que devuelve un mensaje de error desde la base de datos (si corresponde)</param>
        /// <returns></returns>
        public static int ObtenerItemsCuadrados(string Periodo, ref string Mensaje)
        {
            var retorno = 0;

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence();

            using (var objConn = new Persistence(false, ConnDB))
            {
                objConn.ExecuteScalar(ref objRP, String.Format("SELECT dbo.fn_GetItemsCuadrados ('{0}');", Periodo));

                if (!objRP.TieneErrores)
                    retorno = Convert.ToInt16(objRP.GetScalar.ToString());
                else
                    Mensaje = objRP.Errores;
            }

            objRP.Dispose();

            return retorno;
        }


    }
}